import java.util.ArrayList;
import java.util.List;

public abstract class Lokace {
	int x, y;
	int id;
	List<Silnice> sousedi;
	int[] cestaDoPrekladiste;
	Double ohodnoceni;
	boolean navstiveno;
	Lokace predchozi;
	int zasoby;

	public boolean isNavstiveno() {
		return navstiveno;
	}

	public void setNavstiveno(boolean navstiveno) {
		this.navstiveno = navstiveno;
	}

	public void setCestaDoPrekladiste(int[] cestaDoPrekladiste) {
		this.cestaDoPrekladiste = cestaDoPrekladiste;
	}

	public Lokace(int id, int x, int y) {
		super();
		this.x = x;
		this.y = y;
		this.id = id;
		this.sousedi = new ArrayList<Silnice>();
		this.navstiveno=false;
		this.ohodnoceni=1000000.0;
	}

	public int getX() {
		return x;
	}

	public int getY() {
		return y;
	}

	public int getId() {
		return id;
	}

	public List<Silnice> getSousedi() {
		return sousedi;
	}
	
	public int[] getCestaDoPrekladiste(){
		return this.cestaDoPrekladiste;
	}

	public boolean maSousedaId(int id) {
		if (sousedi.size() == 0)
			return false;
		boolean r = false;
		for (int i = 0; i < sousedi.size(); i++) {
			int zLokace = sousedi.get(i).getzLokace();
			int doLokace = sousedi.get(i).getDoLokace();
			if (zLokace == id || doLokace == id)
				r = true;
		}
		return r;
	}

	public Silnice getSilnice(int id) {
		Silnice r = null;
		for (int i = 0; i < sousedi.size(); i++) {
			if (sousedi.get(i).getId() == id)
				r = sousedi.get(i);
		}
		return r;
	}

	public void pridejSouseda(int id_silnice, int doLokace, double vzd) {
		Silnice s = new Silnice(id_silnice, getId(), doLokace, vzd);
		sousedi.add(s);
	}

	public void vypisSousedy() {
		System.out.println(sousedi.size());
		for (int i = 0; i < sousedi.size(); i++) {
			System.out.println(sousedi.get(i).toString());
		}
	}
	public void vypisCestuDoPrekladiste(){
		System.out.print("Cesta:");
		System.out.print(" ID: "+this.id+" [");
		for (int i = 0; i < this.cestaDoPrekladiste.length; i++) {
			System.out.print(cestaDoPrekladiste[i]+" ,");
		}
		System.out.println("]");
	}
}
